const cloudbase = require('@cloudbase/node-sdk');

// 初始化云开发
const app = cloudbase.init({
  env: process.env.ENV_ID
});

const db = app.database();

// 示例数据
const sampleArtists = [
  {
    name: '张大千',
    avatar: 'cloud://art-gallery.6172-art-gallery/avatars/zhangdaqian.jpg',
    bio: '张大千（1899年5月10日－1983年4月2日），原名张正权，后改名张援，字季爰，号大千，四川内江人，中国近代国画大师。',
    artworkCount: 0,
    followersCount: 0,
    tags: ['山水画', '人物画', '花鸟画'],
    createdAt: new Date(),
    updatedAt: new Date()
  },
  {
    name: '齐白石',
    avatar: 'cloud://art-gallery.6172-art-gallery/avatars/qibaishi.jpg',
    bio: '齐白石（1864年1月1日－1957年9月16日），原名纯芝，字渭青，号兰亭，后改名璜，字濒生，号白石、白石山翁、老萍等，湖南湘潭人，中国近现代杰出的画家、书法家和篆刻家。',
    artworkCount: 0,
    followersCount: 0,
    tags: ['花鸟画', '虫鱼画', '山水画'],
    createdAt: new Date(),
    updatedAt: new Date()
  },
  {
    name: '徐悲鸿',
    avatar: 'cloud://art-gallery.6172-art-gallery/avatars/xubeihong.jpg',
    bio: '徐悲鸿（1895年7月19日－1953年9月26日），原名徐寿康，江苏宜兴人，中国现代画家、美术教育家。',
    artworkCount: 0,
    followersCount: 0,
    tags: ['人物画', '动物画', '油画'],
    createdAt: new Date(),
    updatedAt: new Date()
  }
];

const sampleCategories = [
  {
    name: '山水画',
    description: '以山川、河流、自然风景为主要描绘对象的绘画',
    count: 0,
    createdAt: new Date(),
    updatedAt: new Date()
  },
  {
    name: '人物画',
    description: '以人物形象为主要描绘对象的绘画',
    count: 0,
    createdAt: new Date(),
    updatedAt: new Date()
  },
  {
    name: '花鸟画',
    description: '以花卉、鸟兽、鱼虫等为主要描绘对象的绘画',
    count: 0,
    createdAt: new Date(),
    updatedAt: new Date()
  },
  {
    name: '油画',
    description: '使用油彩颜料在支撑体上创作的画',
    count: 0,
    createdAt: new Date(),
    updatedAt: new Date()
  },
  {
    name: '水彩画',
    description: '使用水溶性颜料在纸上创作的画',
    count: 0,
    createdAt: new Date(),
    updatedAt: new Date()
  }
];

// 初始化数据库
async function initDatabase() {
  try {
    console.log('开始初始化数据库...');

    // 创建集合
    const collections = ['artworks', 'artists', 'categories', 'galleries'];
    for (const collection of collections) {
      try {
        await db.createCollection(collection);
        console.log(`创建集合 ${collection} 成功`);
      } catch (error) {
        // 集合可能已存在，忽略错误
        console.log(`集合 ${collection} 可能已存在，跳过创建`);
      }
    }

    // 插入艺术家数据
    console.log('插入艺术家数据...');
    const artistsCollection = db.collection('artists');
    
    // 检查是否已有数据
    const artistsCount = await artistsCollection.count();
    if (artistsCount.total === 0) {
      // 批量插入艺术家数据
      await artistsCollection.add(sampleArtists);
      console.log(`成功插入 ${sampleArtists.length} 条艺术家数据`);
    } else {
      console.log('艺术家数据已存在，跳过插入');
    }

    // 插入分类数据
    console.log('插入分类数据...');
    const categoriesCollection = db.collection('categories');
    
    // 检查是否已有数据
    const categoriesCount = await categoriesCollection.count();
    if (categoriesCount.total === 0) {
      // 批量插入分类数据
      await categoriesCollection.add(sampleCategories);
      console.log(`成功插入 ${sampleCategories.length} 条分类数据`);
    } else {
      console.log('分类数据已存在，跳过插入');
    }

    console.log('数据库初始化完成');
  } catch (error) {
    console.error('数据库初始化失败:', error);
    process.exit(1);
  }
}

// 执行初始化
initDatabase();